Custom Validation Rules ব্যবহার করে CodeIgniter-এ ফর্ম বা ডেটা যাচাইয়ের জন্য আপনার নির্দিষ্ট নিয়ম তৈরি করা যায়। CodeIgniter এর বিল্ট-ইন ভ্যালিডেশন রুল ছাড়াও, কাস্টম ভ্যালিডেশন রুল যোগ করার মাধ্যমে আপনি অ্যাপ্লিকেশনকে আরও নমনীয় করতে পারেন।
Custom Validation Rules তৈরি করতে app/Validation
ডিরেক্টরিতে একটি নতুন ক্লাস তৈরি করুন।
উদাহরণ:
app/Validation
ডিরেক্টরিতে একটি ফাইল তৈরি করুন (যেমন: CustomRules.php
)।<?php
namespace App\Validation;
class CustomRules
{
public function validPhone(string $str, string $fields, array $data): bool
{
// কাস্টম লজিক: শুধুমাত্র ১১ সংখ্যার ফোন নম্বর গ্রহণ করবে
return preg_match('/^\d{11}$/', $str) === 1;
}
}
Custom Validation Rule ব্যবহার করার জন্য এটিকে CodeIgniter-এ নিবন্ধন করতে হবে।
app/Config/Validation.php
ফাইল খুলুন।$ruleSets
অ্যারের মধ্যে আপনার ক্লাসটি যোগ করুন:
public $ruleSets = [
\CodeIgniter\Validation\Rules::class,
\App\Validation\CustomRules::class, // কাস্টম রুল যোগ করা
];
Form validation এ Custom Rule ব্যবহার করতে পারবেন।
উদাহরণ:
$validation = \Config\Services::validation();
$rules = [
'phone' => 'required|validPhone', // Custom Rule 'validPhone' ব্যবহার
];
$data = [
'phone' => '01712345678',
];
if ($validation->setRules($rules)->run($data)) {
echo "Validation Passed!";
} else {
echo "Validation Failed!";
print_r($validation->getErrors());
}
Custom Validation Rules-এর জন্য নির্দিষ্ট Error Message কনফিগার করা যায়।
app/Language/en/Validation.php
ফাইলটি খুলুন।আপনার কাস্টম রুলের জন্য একটি মেসেজ সংযুক্ত করুন:
return [
'validPhone' => 'The {field} must be a valid 11-digit phone number.',
];
আপনি একটি রুল তৈরি করতে পারেন, যা চেক করবে একজন ব্যবহারকারীর বয়স ১৮-এর উপরে কিনা।
CustomRules.php:
<?php
namespace App\Validation;
class CustomRules
{
public function validAge(string $str, string $fields, array $data): bool
{
return (int)$str >= 18;
}
}
Validation.php এ নিবন্ধন:
public $ruleSets = [
\CodeIgniter\Validation\Rules::class,
\App\Validation\CustomRules::class,
];
Validation Message যোগ: app/Language/en/Validation.php
ফাইল:
return [
'validAge' => 'The {field} must be 18 years or older.',
];
Rule ব্যবহার:
$rules = [
'age' => 'required|validAge',
];
$data = [
'age' => 17,
];
if ($validation->setRules($rules)->run($data)) {
echo "Validation Passed!";
} else {
print_r($validation->getErrors());
}
Array
(
[age] => The age must be 18 years or older.
)
Custom Validation Rules ব্যবহার করে CodeIgniter-এ উন্নত এবং নির্ভুল ভ্যালিডেশন মেকানিজম তৈরি করা যায়, যা অ্যাপ্লিকেশনের ডেটা ইন্টিগ্রিটি নিশ্চিত করে।
Read more